import os
import shutil


def copy_all_files_shutil(src_dir, dst_dir):
    """
    使用shutil递归复制所有文件

    Parameters:
        src_dir: 源目录路径
        dst_dir: 目标目录路径
    """
    # 确保目标目录存在
    os.makedirs(dst_dir, exist_ok=True)

    # 遍历源目录
    for item in os.listdir(src_dir):
        src_path = os.path.join(src_dir, item)
        dst_path = os.path.join(dst_dir, item)

        if os.path.isfile(src_path):
            # 如果是文件，直接复制
            shutil.copy2(src_path, dst_path)
        elif os.path.isdir(src_path):
            # 如果是目录，递归处理其中的文件
            files = os.listdir(src_path)
            for file in files:
                src_file = os.path.join(src_path, file)
                if os.path.isfile(src_file):
                    shutil.copy2(src_file, dst_dir)
                else:
                    copy_all_files_shutil(src_file, dst_dir)


if __name__ == "__main__":
    # 设置源文件夹和目标文件夹路径
    source_folder = "D:/test/test_4d"  # 替换为实际路径
    destination_folder = "D:/test/py_test_path1"  # 替换为实际路径

    copy_all_files_shutil(source_folder, destination_folder)
